package CONTABILIDAD_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class CON_USUARIO_PLAN_SAL_CUENTAS {

    private int ID_USUARIO;
    private int ID_CENTRO_COSTO;
    private int ID_CUENTAS;
    private Conexion con = null;

    public CON_USUARIO_PLAN_SAL_CUENTAS(Conexion con) {
        this.con = con;
    }

    public CON_USUARIO_PLAN_SAL_CUENTAS(int ID_USUARIO, int ID_CENTRO_COSTO, int ID_CUENTAS) {
        this.ID_USUARIO = ID_USUARIO;
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
        this.ID_CUENTAS = ID_CUENTAS;
    }
    
    public boolean AddCuenta(int id_usuario, int id_cuenta, int id_centro) throws SQLException {  
        String centro = "null";
        if(id_centro!=0)
            centro=id_centro+"";
        
        String consulta = "select * from BROKER.CON_USUARIO_PLAN_SAL_CUENTAS where ID_USUARIO = "+id_usuario;
        ResultSet rs = con.EjecutarConsulta(consulta);        
        if(rs.next())
        {
            consulta = "update BROKER.CON_USUARIO_PLAN_SAL_CUENTAS set ID_CENTRO_COSTO = " + centro + ",ID_CUENTAS = " + id_cuenta + " where ID_USUARIO =  " + id_usuario;
            con.EjecutarSentencia(consulta);            
        }
        else
        {
            consulta = "insert into BROKER.CON_USUARIO_PLAN_SAL_CUENTAS (ID_USUARIO, ID_CENTRO_COSTO, ID_CUENTAS) VALUES (" + id_usuario + "," + centro + "," + id_cuenta + ")";
            con.EjecutarSentencia(consulta);            
        }
        return true;
    }
    
    public CON_USUARIO_PLAN_SAL_CUENTAS Buscar(int id_usuario) throws SQLException {
        String consulta = "select * from BROKER.CON_USUARIO_PLAN_SAL_CUENTAS where ID_USUARIO = " + id_usuario;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<CON_USUARIO_PLAN_SAL_CUENTAS> lista = Cargar(rs);
        if (lista.size() > 0) {
            return lista.get(0);
        } else {
            return null;
        }
    }
    
    public List<CON_USUARIO_PLAN_SAL_CUENTAS> Todos() throws SQLException {
        String consulta = "select * from BROKER.CON_USUARIO_PLAN_SAL_CUENTAS";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<CON_USUARIO_PLAN_SAL_CUENTAS> lista = Cargar(rs);
        return lista;
    }

    public List<CON_USUARIO_PLAN_SAL_CUENTAS> Cargar(ResultSet rs) throws SQLException {
        List<CON_USUARIO_PLAN_SAL_CUENTAS> lista = new ArrayList<CON_USUARIO_PLAN_SAL_CUENTAS>();
        while (rs.next()) {
            CON_USUARIO_PLAN_SAL_CUENTAS objeto = new CON_USUARIO_PLAN_SAL_CUENTAS(con);
            objeto.setID_USUARIO(rs.getInt("ID_USUARIO"));
            objeto.setID_CENTRO_COSTO(rs.getInt("ID_CENTRO_COSTO"));
            objeto.setID_CUENTAS(rs.getInt("ID_CUENTAS"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID_USUARIO() {
        return ID_USUARIO;
    }

    public void setID_USUARIO(int ID_USUARIO) {
        this.ID_USUARIO = ID_USUARIO;
    }

    public int getID_CENTRO_COSTO() {
        return ID_CENTRO_COSTO;
    }

    public void setID_CENTRO_COSTO(int ID_CENTRO_COSTO) {
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
    }

    public int getID_CUENTAS() {
        return ID_CUENTAS;
    }

    public void setID_CUENTAS(int ID_CUENTAS) {
        this.ID_CUENTAS = ID_CUENTAS;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
